#include <stdio.h>

/*
printf (const char *__restrict __fmt, ...)
函数名  printf
函数参数 
    @__fmt 你要输出到 ** 字符串
    @...   边长参数
函数返回值
    int 类型    
        成功返回 0
        失败返回 EOF
函数功能
    格式化将内容输出到 终端
extern int scanf (const char *__restrict __format, ...) __wur;
函数名 scanf 
函数参数 
    @__format 你要输入到 ** 字符串
    @...   边长参数
函数返回值
    int 类型    
        成功返回 0
        失败返回 EOF
函数功能
    从键盘中读取
*/

int main(int argc, char const *argv[])
{
    char name[128] = "张三";
    int id = 8;
    int age = 18;
    char ch = 10;

    // printf("请输入学生姓名");
    // scanf("%s" , name);
    // printf("请输入学生学号");
    // scanf("%d" , &id);
    // printf("请输入学生年龄");
    // scanf("%d" , &age);
    printf("请输入学生信息");
    scanf("%s\n%d\n%d" , name , &id , &age);
/*
    错误使用 1
        scanf("%d\n" , &age);
    错误使用 2
        scanf("请输入学生年龄 %d\n" , &age);
*/
    printf("学生姓名:%s\n学生学号:%d\n学生年龄:%d\n" , 
    name , id , age);
    // 翻斗大街 翻斗花园 二号楼 1001室
    // 0x7ffc4cc2fab0
    return 0;
}
/*
主要
%d == 用于整数的格式化输入输出
%f == 用于小数的格式化输入输出
%c == 用于字符的格式化输入输出
%s == 用于字符串的格式化输入输出

%e == 用于小数的 指数形式 格式化输入输出
%g == 用于小数的 自动形式 格式化输入输出

%p == 用于指针地址数据的格式化输入输出
%x == 用于整数形式 16进制 的格式化输入输出
%o == 用于整数形式 8进制 的格式化输入输出

辅助
%l == 用于输出 长整型 长双精度浮点型 搭配 %ld %lf
%L == 用于输出 双精度浮点型 搭配 %Lf
%h == 用于输出 短整型  %hd
%u == 用于输出 无符号  %ud
%n == 用于对输出的数据 进行右对齐 向右边 对其 n 字符 %10d 
%-n == ~ 进行左对齐

转义字符
\n  换行
\r  回车
\t  制表符
\\  用于打印\
%%  用于打印%
\'  用于打印 单引号
\"  用于打印 双引号
*/

